package com.base.cn.platform.os.entity.course.cou.record;

import com.base.cn.platform.os.common.mybatis.BaseEntity;
import com.base.cn.platform.os.entity.course.catalog.CourseCatalog;
import com.base.cn.platform.os.entity.course.cou.Course;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

@Data
@EqualsAndHashCode(callSuper = false)
public class CourseLearnFlow extends BaseEntity {
    // 前台用户id
    private BigDecimal userId;
    //套餐/课程ID（购买的课程ID）
    private BigDecimal buyCourseId;
    // 课程id
    private BigDecimal courseId;
    // 章节id
    private BigDecimal catalogId;
    // 素材id
    private BigDecimal materialId;
    // 播放来源 1.WEB 2.H5 3.APP 4.小程序
    private Integer source;
    //学习时间
    private Integer duration;
    //播放资源类型
    private String materialTypeKey;
    //======================
    //购买的课程对象
    private Course buyCourse;
    //播放的课程
    private Course course;
    //目录对象
    private CourseCatalog courseCatalog;
    //用户对象
    private Map<String, Object> user;
    /**排序条件*/
    private int orderType;
    /**按照数据的创建时间查询 开始*/
    private Date endCreateTime;
    /**按照数据的创建时间查询 结束*/
    private Date beginCreateTime;
    /**时间轴标记*/
    private String timeAxis;
    // 是否完成观看 1.未完成 2.已完成
    private Integer finish;
    /**
     * 是否通过
     */
    private boolean pass;
    // 是否拥有随堂练习
    private boolean practiceExist;
    // 随堂练习id
    private BigDecimal practiceId;
    /**
     *答题得分率
     */
    private Double scorePercent;


    /**
     * 使用in查询
      */
    private  String selectCatalogIn;

    /**
     * 学习时间 时分秒
     */
    private Map<String,String> durationMap;

    public Map<String,String> getDurationMap(){
        Integer _duration = this.getDuration();
        if(_duration!=null && _duration.intValue()>0){
            int h = _duration / (60 * 60);
            int m = (_duration % (60 * 60)) / 60;
            int s = (_duration % (60 * 60)) % 60;
            Map<String,String> map = new HashMap<>();
            map.put("h",String.valueOf(h));
            map.put("m",String.valueOf(m));
            map.put("s",String.valueOf(s));
            return map;
        }
        return null;
    }

}
